package ar.uba.fi.taller2.cmmiassistant.frontend.evaluacion;

import java.awt.GridLayout;
import java.util.Collection;
import java.util.Iterator;

import javax.swing.BoxLayout;

import ar.uba.fi.taller2.cmmiassistant.controlador.Controlador;
import ar.uba.fi.taller2.cmmiassistant.frontend.PanelVista;
import ar.uba.fi.taller2.cmmiassistant.frontend.evaluacion.util.ConversorEvaluables;
import ar.uba.fi.taller2.cmmiassistant.frontend.util.ItemToEvaluateEditor;
import ar.uba.fi.taller2.cmmiassistant.vista.Vista;

public abstract class EditorCalificacion extends PanelVista {

	private static final long serialVersionUID = -6756653805327632995L;

	private ConversorEvaluables conversor;

	// TODO listener
	protected void inicializar() {
		this.removeAll();
	}

	public EditorCalificacion(Vista contexto,
			ConversorEvaluables conversorEvaluables) {
		super(contexto);
		BoxLayout layout = new BoxLayout(this, BoxLayout.Y_AXIS);
//		layout.maximumLayoutSize(new Dimension(20,20));

		setLayout(layout);
		setConversor(conversorEvaluables);
	}

	@Override
	public void setControlador(Controlador controlador) {
		super.setControlador(controlador);
		getConversor().setControlador(controlador);
	}

	public ConversorEvaluables getConversor() {
		return conversor;
	}

	public void setConversor(ConversorEvaluables conversor) {
		this.conversor = conversor;
	}

	public abstract Collection<?> getItems();

	public void cargar() {

		this.inicializar();
		if (this.getModelo().getInstanciaSeleccionada().getValor() != null
				|| this.getModelo().getEvaluacionSeleccionada().getValor() != null) {
			for (Iterator<?> iter = getItems().iterator(); iter.hasNext();) {
				Object etiqueta = iter.next();
				this.add(new ItemToEvaluateEditor(etiqueta, conversor));
			}
		}
	}

}
